﻿namespace DoNet.TenPay
{
    public interface IResponseReturnSuccess
    {
        /// <summary>
        /// 返回状态码
        /// SUCCESS/FAIL 此字段是通信标识，非交易标识，交易是否成功需要查看result_code来判断
        /// </summary>
        string return_code { set; get; }
        /// <summary>
        /// 返回信息
        /// 返回信息，如非空，为错误原因 签名失败 参数格式校验错误
        /// </summary>
        string return_msg { set; get; }
        /// <summary>
        /// 设备号 
        /// 调用接口提交的终端设备号
        /// 微信支付分配的终端设备号
        /// </summary>
        string device_info { set; get; }
        /// <summary>
        /// 随机字符串
        /// 微信返回的随机字符串
        /// </summary>
        string nonce_str { set; get; }
        /// <summary>
        /// 签名
        /// 微信返回的签名，详见签名生成算法
        /// </summary>
        string sign { set; get; }
        /// <summary>
        /// 业务结果
        /// SUCCESS/FAIL
        /// </summary>
        string result_code { set; get; }
        /// <summary>
        /// 错误代码
        /// 详细参见错误列表
        /// </summary>
        string err_code { set; get; }
        /// <summary>
        /// 错误代码描述
        /// 错误返回的信息描述
        /// </summary>
        string err_code_des { set; get; }
    }

    /// <summary>
    /// return_code为SUCCESS的时候
    /// </summary>
    public class ResponseReturnSuccess : ResponseBase, IResponseReturnSuccess
    {
        /// <summary>
        /// 设备号 
        /// 调用接口提交的终端设备号
        /// 微信支付分配的终端设备号
        /// </summary>
        public string device_info { set; get; }
        /// <summary>
        /// 随机字符串
        /// 微信返回的随机字符串
        /// </summary>
        public string nonce_str { set; get; }
        /// <summary>
        /// 签名
        /// 微信返回的签名，详见签名生成算法
        /// </summary>
        public string sign { set; get; }
        /// <summary>
        /// 业务结果
        /// SUCCESS/FAIL
        /// </summary>
        public string result_code { set; get; }
        /// <summary>
        /// 错误代码
        /// 详细参见错误列表
        /// </summary>
        public string err_code { set; get; }
        /// <summary>
        /// 错误代码描述
        /// 错误返回的信息描述
        /// </summary>
        public string err_code_des { set; get; }
    }
}
